package com.example.模板模式;

/**
 * 饮料制作
 */
public abstract class CaffeineBeverage {

    /**
     * 准备饮料 设置这个方法不更改
     */
    public final void prepareBecipe() {
        // 1.把水煮沸
        boilWater();

        // 2. 泡: 将具体实现延迟到子类中
        brew();

        // 3. 把茶倒进杯子
        pourInCup();

        // 4. 加调料: 将具体实现延迟到子类中
        addCondiments();
    }

    /**
     * 2. 泡
     */
    abstract void brew();

    /**
     * 4. 加调料
     */
    abstract void addCondiments();

    void boilWater() {
        System.out.println("把水煮沸");
    }

    void pourInCup() {
        System.out.println("把冲泡的倒进杯子");
    }
}


